# -*- coding:utf-8 -*-
"""
Created on 26.12.2009

@author: r4smus
"""

#Schlüsselwort lambda: 

#Erzeugung einer Liste aller Zahlen zwischen 1 und 500 deren Quadrat
#Modulu 13 drei ergibt.
print filter(lambda x: x**2 % 13 == 3, [i for i in range(1,500)])

#Berechung des Mittelwertes aus einer Liste von float Zahlen
seq = [1.5, 2.4, 3.1, 4.8, 5.9, 6.3, 7.5, 8.6, 9.3]
print reduce(lambda x,y: x + y, seq )/len(seq)

#Berechnung einer Liste mit Funktionswerten x + 3xy + z^3, wobei die
#x, y, z aus drei gleich langen Listen xList, yList, zList stammen sollen.
xList = [2,6,5,4,9,2,6,5,1,5,6,4,8]
yList = [6,5,9,4,3,2,1,8,7,6,4,6,2]
zList = [1,2,5,9,4,7,3,6,5,2,2,2,3]
print map(lambda x,y,z: x + 3*x*y + z**3, xList, yList, zList)

#Alle ohne Rest durch fünf teilbaren Zahlen aus dem Ergebnis der 1. Aufgabe
print filter(lambda y: y % 5 == 0, filter(lambda x: x**2 % 13 == 3, [i for i in range(1,500)]))